#pragma once

class Temperament
{
public:
	// Returns the frequency (in Hz) of a note that's "note_id" notes away from the reference note,
	// for a reference note having a frequency of "reference".
	//
	// Arguments:
	// - reference: The frequency of the reference note, in Hz.
	// - note_id: The distance (in number of notes) between the
	//   reference note and the requested note. When negative, goes left.
	//   For example, if the reference frequency represents a middle C and id equals 2,
	//   this function should return a frequency representing a middle E.
	virtual double get_frequency(double reference, int note_id) = 0;
};
